﻿#define _CRT_SECURE_NO_WARNINGS

//给定一个大小为 n 的数组 nums ，返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n / 2 ⌋ 的元素。
//
//你可以假设数组是非空的，并且给定的数组总是存在多数元素。
//
//
//
//示例 1：
//
//输入：nums = [3, 2, 3]
//输出：3
//示例 2：
//
//输入：nums = [2, 2, 1, 1, 1, 2, 2]
//输出：2


int majorityElement(int* nums, int numsSize) {
    int count = 1;
    int tmp = nums[0];
    for (int i = 1; i < numsSize; i++)

    {
        if (tmp == nums[i])
        {
            //与保存的字符相同则计数+1
            count++;
        }
        else
        {
            //与保存的字符不同则计数-1 
            count--;
            //计数为0表示有可能保存的字符不是最多的字符，换下一个 
            if (count == 0)
                tmp = nums[i + 1];
        }
    }
    return tmp;
}